// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "Hit/Q3D_CPPU_Hit.h"
#include "Q3D_CPPI_HitCauser.generated.h"

// This class does not need to be modified.
UINTERFACE(MinimalAPI, Blueprintable, meta = (Tooltip = "使用 HitCauser 必须实现的接口(C++)"))
class UQ3D_CPPI_HitCauser : public UInterface
{
	GENERATED_BODY()
};

/**
 *
 */
class Q3D_LIB_API IQ3D_CPPI_HitCauser
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_HitCauser, meta = (Tooltip = "HitCauser 接口，携带一个命中"))
	void Q3D_IF_Hit_Set(const TMap<FName, UQ3D_CPPU_Hit *> &map_name_to_ptr_u_hit_param, UPARAM(DisplayName = "boool_success") bool &bool_success, UPARAM(DisplayName = "string_log") FString &string_log);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_HitCauser, meta = (Tooltip = "HitCauser 接口，向目标发送一个命中"))
	void Q3D_IF_Hit_SetToTarget(AActor *ptr_a_hit_target, UPARAM(DisplayName = "boool_success") bool &bool_success, UPARAM(DisplayName = "string_log") FString &string_log);
};
